
#!/bin/bash

command_to_execute="mvn "
command_to_suffix="$1"
delimiter="/"
directory="./*/"
dir_ignore=(docs jxbeidou-parent logs)


if [ -z "$command_to_suffix" ]; then
  echo "Input parameter is empty. Exiting script."
  echo "入参不能为空，此脚本是基于mvn命令实现，可以在当前目录下所有子目录执行相同的mvn脚本"
  echo "例如:"
  echo "1. 清理当前目录下所有子项目:./mvn.sh clean"
  echo "2. 打包当前目录下所有子项目：./mvn.sh package"
  echo "3. 支持所有以mvn命令为基础的操作，只需讲mvn替换为./mvn.sh即可"
  echo "忽略目录，请编辑当前文件，在dir_ignore变量中增加需要忽略的目录"
  echo "如果需要指定目录，请修改directory变量，如果是当前目录，该值为*"
  exit 1
fi

flag=0
# 遍历当前目录下的所有子目录
for dir in $directory; do
    if [ -d "$dir" ]; then
      OLD_IFS=$IFS
      IFS=$delimiter
      read -a parts <<< "$dir"
      IFS=$OLD_IFS
      last_element=${parts[${#parts[@]}-1]}
      echo "Parts:$last_element"
      for ignore in "${dir_ignore[@]}"; do
        if [ "$last_element" = "$ignore" ]; then
          flag=1
          break
        fi
      done
      if [ "$flag" = 1 ]; then
        flag=0
        continue
      fi
      echo "Executing command in $dir: mvn $command_to_suffix"
      full_command="$command_to_execute $command_to_suffix"
        (cd "$dir" && $full_command)
    fi
done
